﻿using System;
using Z16.BLI;

namespace Z16.SITE
{
    public partial class direcionamento : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if ((Session["CodPerfil"] == null) || (Session["CodUsr"] == null))
                {
                    Response.Write("<script>window.location=\'Login.aspx';</script>");
                    return;
                }

                carregarProjeto();
                carregarPerfil();
                carregarUsuario();
            }
        }

        protected void btnGravar_Click(object sender, EventArgs e)
        {
            divSucess.Visible = false;
            divError.Visible = false;

            int? codProjeto = null,codDemanda = null,codAtividade = null,codTarefa = null,codUsu = null;

            if (ddlProjeto.SelectedValue != "Selecione" && ddlProjeto.SelectedValue != "")
                codProjeto = int.Parse(ddlProjeto.SelectedValue);

            if (ddlDemanda.SelectedValue != "Selecione" && ddlDemanda.SelectedValue != "")
                codDemanda = int.Parse(ddlDemanda.SelectedValue);

            if (ddlAtividade.SelectedValue != "Selecione" && ddlAtividade.SelectedValue != "")
                codAtividade = int.Parse(ddlAtividade.SelectedValue);

            if (ddlTarefa.SelectedValue != "Selecione" && ddlTarefa.SelectedValue != "")
                codTarefa = int.Parse(ddlTarefa.SelectedValue);

            if (ddlUsuario.SelectedValue != "Selecione" && ddlUsuario.SelectedValue != "")
                codUsu = int.Parse(ddlUsuario.SelectedValue);

            try
            {
                Direcionamento dir = new Direcionamento();

                var ret = dir.incDirecionamento(codProjeto,codDemanda,codAtividade,codTarefa,codUsu);
                    var retorno = ret.Split(';');

                    this.ExibirMensagem(retorno[0], retorno[1]);
            }
            catch
            {
                divError.Visible = true;
            }
        }

        private void carregarProjeto()
        {
            Demanda demanda = new Demanda();

            ddlProjeto.Items.Clear();
            ddlProjeto.AppendDataBoundItems = true;
            ddlProjeto.Items.Insert(0, "Selecione");

            ddlProjeto.DataSource = demanda.listarProjeto();
            ddlProjeto.DataValueField = "IntCodProjeto";
            ddlProjeto.DataTextField = "StrNomeProjeto";
            ddlProjeto.DataBind();
        }

        private void carregarDemanda()
        {
            Demanda demanda = new Demanda();
            int? codProj = null;

            if (ddlProjeto.SelectedValue != "Selecione")
                codProj = int.Parse(ddlProjeto.SelectedValue);

            ddlDemanda.Items.Clear();
            ddlDemanda.AppendDataBoundItems = true;
            ddlDemanda.Items.Insert(0, "Selecione");

            ddlDemanda.DataSource = demanda.ListarDemandas(null, null, null, null, codProj, null);
            ddlDemanda.DataValueField = "Cod_Demanda";
            ddlDemanda.DataTextField = "Nome_Demanda";
            ddlDemanda.DataBind();
        }

        private void carregarAtividade()
        {
            Atividade atividade = new Atividade();
            int? codDemanda = null;

            if (ddlDemanda.SelectedValue != "Selecione")
                codDemanda = int.Parse(ddlDemanda.SelectedValue);

            ddlAtividade.Items.Clear();
            ddlAtividade.AppendDataBoundItems = true;
            ddlAtividade.Items.Insert(0, "Selecione");

            ddlAtividade.DataSource = atividade.listarAtividades(codDemanda,null,null,null,null,null,null);
            ddlAtividade.DataValueField = "Cod_Atividade";
            ddlAtividade.DataTextField = "Nome_Atividade";
            ddlAtividade.DataBind();
        }

        private void carregarTarefa()
        {
            Tarefa tarefa = new Tarefa();
            int? codAtividade = null;

            if (ddlAtividade.SelectedValue != "Selecione")
                codAtividade = int.Parse(ddlAtividade.SelectedValue);

            ddlTarefa.Items.Clear();
            ddlTarefa.AppendDataBoundItems = true;
            ddlTarefa.Items.Insert(0, "Selecione");

            ddlTarefa.DataSource = tarefa.listartarefas(codAtividade, null, null, null, null);
            ddlTarefa.DataValueField = "Cod_Tarefa";
            ddlTarefa.DataTextField = "Nome_Tarefa";
            ddlTarefa.DataBind();
        }

        private void carregarPerfil()
        {
            Usuario usuario = new Usuario();

            ddlPerfil.Items.Clear();
            ddlPerfil.AppendDataBoundItems = true;
            ddlPerfil.Items.Insert(0, "Selecione");

            ddlPerfil.DataSource = usuario.listarPerfil();
            ddlPerfil.DataValueField = "intCodPerfil";
            ddlPerfil.DataTextField = "strNomePerfil";
            ddlPerfil.DataBind();
        }

        private void carregarUsuario()
        {
            Usuario usuario = new Usuario();
            int? codPerf = null;
            if (ddlPerfil.SelectedValue != "Selecione")
                codPerf = int.Parse(ddlPerfil.SelectedValue);

            ddlUsuario.Items.Clear();
            ddlUsuario.AppendDataBoundItems = true;
            ddlUsuario.Items.Insert(0, "Selecione");

            ddlUsuario.DataSource = usuario.ListarUsuarios(null, null, codPerf);
            ddlUsuario.DataValueField = "Cod_Usuario";
            ddlUsuario.DataTextField = "Nome_Usuario";
            ddlUsuario.DataBind();
        }

        protected void ddlProjeto_SelectedIndexChanged(object sender, EventArgs e)
        {
            trDemanda.Visible = true;
            carregarDemanda();
        }

        protected void ddlDemanda_SelectedIndexChanged(object sender, EventArgs e)
        {
            trAtivdade.Visible = true;
            carregarAtividade();
        }

        protected void ddlAtividade_SelectedIndexChanged(object sender, EventArgs e)
        {
            trTarefa.Visible = true;
            carregarTarefa();
        }

        protected void ddlPerfil_SelectedIndexChanged(object sender, EventArgs e)
        {
            carregarUsuario();
        }

        protected void ExibirMensagem(string erro, string mensagem)
        {
            if (erro.Equals("0"))
            {
                divSucess.Visible = true;
                lblMsg.Text = mensagem;
            }
            else
            {
                divError.Visible = true;
                lblErro.Text = mensagem;
            }
        }
       
    }
}